/************************************************************************
 * 介绍重载/覆盖/重定义的区别
 * 1、什么是重载
 *    重载分为函数重载与运算符重载，这些函数名称相同但是参数形式不同
 *    运算符重载就是对现有的运算符进行重新定义实现不同的运算。
 * 2、为什么会有重载
 *    为了实现在同一个定义区间内部，实现多个同名函数
 * 3、如何使用函数重载
 *    函数名称相同，参数列表不同
 * **********************************************************************/
#include "common.h"
using namespace std;

void show_val(int val)
{
    cout << val << endl;
}
void show_val(char ch)
{
    cout << ch << endl;
}

void Override::show_val(int val)
{
    cout << val << endl;
}
void Override::show_val(char ch)
{
    cout << ch << endl;
}
void Override::show_output()
{
    cout << m_val << endl;
}

int main()
{
    int val = 10;
    char ch = 'a';
    show_val(val);
    show_val(ch);

    Override temp(12);
    temp.show_val(78);
    temp.show_val('v');

    Override temp2(13);
    temp2 + temp;
    temp2.show_output();

    return 0;
}